﻿using Tauren.Business.Entity.Config;
using Input = Tauren.Business.Entity.Input;
using Global = Tauren.Business.Entity.Global;
using Tauren.Business.Entity.Global;
using System.Collections.Generic;
using Tauren.Business.Entity.Input;

namespace Tauren.Business.Service.AccountInfo
{
    /// <summary>
    /// 账户信息
    /// </summary>
    public interface IAccountInfoService
    { /// <summary>
      /// 删除账户信息
      /// </summary>
      /// </summary>
      /// <param name="model">人员基本信息实体</param>
      /// <returns></returns>
        IResponseMessage Delete(object id);

        /// <summary>
        /// 根据账号获取账户信息
        /// </summary>
        /// </summary>
        /// <param name="model">人员基本信息实体</param>
        /// <returns></returns>
        IResponseMessage GetByAccount(string Account);
         

        /// <summary>
        /// 获取单个数据
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        IResponseMessage FirstOrDefault(object id);
        /// <summary>
        /// 获取所有数据
        /// </summary> 
        /// <returns></returns>
        IResponseMessage All();

        /// <summary>
        /// 新增数据
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        IResponseMessage Add(Input.AccoutInfo_Input input);
        /// <summary>
        /// 编辑数据
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        IResponseMessage Editor(Input.AccoutInfo_Input input);

        /// <summary>
        /// 分页获取数据
        /// </summary>
        /// <param name="queryModel"></param>
        /// <returns></returns>
        IResponseMessage Pages(Global.QueryModel queryModel); 

        /// <summary>
        /// 启用/禁用
        /// </summary>
        /// <param name="id"></param>
        /// <param name="enable"></param>
        /// <returns></returns>
        IResponseMessage Enable(int id);

        /// <summary>
        /// 根据组织获取员工基本信息
        /// </summary>
        /// <param name="OrgId"></param>
        /// <returns></returns>
        IResponseMessage GetByOrgs(string OrgId);

        /// <summary>
        /// 注册账号
        /// </summary>
        /// <param name="Accounts"></param>
        /// <returns></returns>
        IResponseMessage Register(List<PersonInfo_InPut> Accounts);

        /// <summary>
        /// 重置密码
        /// </summary>
        /// <param name="_Input"></param>
        /// <returns></returns>
        IResponseMessage RestPassword(int AccountId);
    }
}
